/**
 * 请求方法
 */


import { aToast } from './uni-api.js'
import * as config from '../config/index.js'

// 初始请求次数
let ajaxTime = 0

/**
 * params {Object} 请求参数
 * loading {Boolean} 是否开启loading
 */
export const request = async (params, loading = true) => {
    
	if (loading) {
		// 异步次数加一
		ajaxTime++
		
		// 开启加载画面
		uni.showLoading({
			title: '加载中',
			mask: true
		})
	}
	
	// 此处操作token
	let header = {
		...params.header
	}
	
	// 此处请按需求修改
	const token = uni.getStorageSync('token') 
	token && (header['Authrization'] = token)

	return new Promise(async (resolve, reject) => {
		uni.request({
			method : config['MOTHD'], // 默认的请求方式
			timeout: 20000,           // 响应超时
			...params,
			header : header,
			url    : config['BASE_URL'] + params['url'],   // 请求url
			success(back) {
                /**
				 * 此处可以对响应错误的数据抛出提示
				 * 
				 * if (back.code == 401) {
				 *    aToast('请登录')
				 * }
				 */
				resolve(back)
			},
			fail(err) {
				reject(err)
			},
			complete() {
				
				if (loading) {
					// 异步次数减一
					ajaxTime--
					if (ajaxTime <= 0) {
						
						// 关闭加载画面
						uni.hideLoading()
					}
				}
			}
		})
	})

}
